'use strict';	//严格模式
// 班级管理的控制器文件：增删改查 等操作

const xtpl = require('xtpl');
const path = require('path');
const moment = require('moment');	
const db = require('../configs/database.js');
const baseCtr = require('./baseController.js');
// 班级添加
module.exports.classAdd = function(req,res){
	// xtpl.renderFile('',{},function(){})
	xtpl.renderFile(
		path.join(__dirname,'../views/admin/class_add.html'),
		{
			page:'clsAdd'
		},
		function(err,content){
			// 设置输出的内容类型 html
			res.setHeader('Content-Type','text/html;charset=utf-8');
			res.send(content);
		}
	)
}
module.exports.classAddData = function(req,res){
	var where = `class_name='${req.body.class_name}'`;
	db.table('class').field('class_id').where(where).find().then(function(result){

		if(JSON.stringify(result)=='{}'){
			var data = {
				class_name:req.body.class_name,
				class_time:Date.parse(req.body.class_time)/1000,
			}
			db.table('class').add(data).then(function(){
				console.log('添加成功')
				res.redirect('/admin/class/class_list'); 
			}).catch(function(err){
				console.log(err)	
			})
		}else{
			baseCtr.sendMsg('该班级已存在',res);
		}

	}).catch(function(err){
		console.log(err)	
	})
}

// 班级列表
module.exports.classList = function(req,res){
	var pn = req.query.pn!=undefined?req.query.pn:1;
	var limit = 2;	
	var start = (pn-1)*limit;
	// 关键字搜索
	var where = '';
	var s = req.query.s!=undefined && req.query.s!=''?req.query.s:'';	// 搜索的关键字
	if(s!=''){
		where = `class_name like '%${s}%'`;
	}
	db.table('class').where(where).limit(start,limit).order('class_id DESC').select().then(function(data){
		db.table('class').where(where).count('class_id').then(function(total){	
			
			var endPn = Math.ceil(total/limit);
			
			var pageArr = [];
			for(var i=1; i<=endPn; i++){
				pageArr.push(i);
			}

			xtpl.renderFile(
				path.join(__dirname,'../views/admin/class_list.html'),
				{
					page:'clsList',
					classList:data,
					pageArr:pageArr,
					pn:parseInt(pn),	
					endPn: endPn
				},
				function(err,content){
				
					res.setHeader('Content-Type','text/html;charset=utf-8');
					res.send(content);
				}
			)

		})

	}).catch(function(err){
		console.log(err)	
	})
	
}

// 删除
module.exports.classDelete = function(req,res){
	// var id = req.params.id; 
	// db.table('student').where({class_id:id}).count('stu_id').then(function(total){
	// 	if(total>0){
	// 		baseCtr.sendMsg('该班级还有'+total+'位小伙伴，暂不能删除',res)
	// 	}else{
	// 		db.table('class').where({class_id:id}).delete().then(function(){
	// 			res.redirect('/admin/class/class_list');
	// 		})
	// 	}
	// })
	var id = req.params.id; 
	var arr=id.split(',')
	var str0=' or class_id='
	var str='class_id=0'
	for(var i=0;i<arr.length;i++){
		str+=str0+arr[i]
	}
	db.table('student').where(str).count('stu_id').then(function(total){
		if(total>0){
			baseCtr.sendMsg('该班级还有'+total+'位小伙伴，暂不能删除',res)
		}else{
			db.table('class').where(str).delete().then(function(){
				res.redirect('/admin/class/class_list');
			})
		}
	})
	
}



module.exports.classEdit = function(req,res){
	
	db.table('class').where({class_id:req.params.id}).find().then(function(clsData){

		clsData.class_time = moment(clsData.class_time*1000).format('YYYY-MM-DD');
		xtpl.renderFile(
			path.join(__dirname,'../views/admin/class_edit.html'),
			{
				page:'clsAdd',
				clsList:clsData
			},
			function(err,content){
				res.setHeader('Content-Type','text/html;charset=utf-8');
				res.send(content);
			}
		)

	}).catch(function(err){

		console.log(err)	
	})

}
module.exports.classEditData = function(req,res){
	var where = `class_id!='${req.params.id}' and class_name='${req.body.class_name}'`;
	db.table('class').field('class_id').where(where).find().then(function(result){

		if(JSON.stringify(result)=='{}'){
			var data = {
				class_name:req.body.class_name,
				class_time:Date.parse(req.body.class_time)/1000
			}
			db.table('class').where({class_id:req.params.id}).update(data).then(function(){
				console.log('修改成功')
				res.redirect('/admin/class/class_list'); 
			}).catch(function(err){
				console.log(err)	
			})
		}else{
			baseCtr.sendMsg('该班级已存在',res);
		}

	}).catch(function(err){
		console.log(err)	
	})
}